1. Technical Field
The present invention relates, in general, to an improved editing system. In particular, the present invention relates to an improved editing system having a scheme for recollecting and undoing operations performed by said editing system.
2. Description of the Related Art
The present invention relates to editing systems. An editing system is generally an application program for creating and changing electronic documents. Well known types of editing systems are line editors and full-screen editors. However, probably the best know type of editing system is the word processing system.
A word processing system is an application program that provides for the creation and changing of electronic documents. Historically, word processing systems were used to work exclusively on textual documents (hence the name "word processing systems"), but today's word processing systems are capable of working on every type of document in existence, including, but not limited to, text, graphics, pictures, video data, audio data, etc.
A word processing system creates and changes an electronic document via the successive applications of "edits" to the electronic document. The term "edit" means to intentionally change data in an electronic document for a specific purpose and in accordance with prescribed rules. Examples of editing are to correct errors in text, delete text, change the format (e.g., italicize, or underline) of text, manipulating photographs, etc. M. Weik, Communications Standard Dictionary 279 (3rd ed. 1996).
Each "edit" of a computer file generally requires the execution of one or more "editing commands." An "editing command" is an imperative instruction that an operator or program may give to a computer to require the computer to perform a specified operation on specified data in a selected file, such as insert a character, delete a character, start a new paragraph, insert a line, change a pixel or pixels, etc. M. Weik, Communications Standard Dictionary 279 (3rd ed. 1996).
Most word processing systems keep a sequential (generally with the most recent "edit" listed first) list of past "edits" to an electronic document. Such past "edits" can generally be accessed to "undo" edits done previously. In order to "undo" a particular operation, a user generally locates a specific "edit" in a "previous edits" list, and directs that the word processing system "undo" that particular edit. In response, the word processing system restores the data affected by the particular "edit" selected to its "pre-edit" form.
While the foregoing "undo" scheme has proven to be of great use, there are presently needs which are not being met by existing "undo" schemes. Those needs arise out of the fact that the existing sequential "undo" lists prove unsatisfactory when a user wants to "undo" edits made to a particular section of text or data within a file, where such edits to be "undone" may have been made much earlier than the last edits, or where such edits to be undone might have been done to a particular section of text or data within a file, but were such edits were very far apart in sequence.
These needs can be made more tangible by the following (non-exclusive) example.
Assume that a technical professional (such as an engineer) is editing an electronic document with a word processing system. Assume that the 10th through the 20th (in sequence) edits to his document were done to the second paragraph of his document. Assume further that the engineer goes on to do subsequent edits to many other parts of the document, and subsequently returns to the second paragraph of the document to perform the 66th through 69th edits (in sequence).
Now assume that a client enters the engineer's office and revises the requirements of the project toward which the engineer's document is directed. The engineer realizes that the original version of his paragraph two is what he needs in light of the new requirements from his client. That is, the engineer desires that he be able to reconstruct his paragraph two prior to edit 10 through edit 20, and edit 66 through edit 69. That is, the engineer needs to "undo" edits 10-20 and edits 60-69.
Unfortunately, the engineer will have an arduous task with existing word processing systems. The best he can hope for is to be able to search back through the "previous edits" list, find the 66th-69th edits and the 10th-20th edits and "undo" them manually. The engineer would find his life much easier if he could selectively "undo" only the edits made to paragraph two of his document, but under the current state of the art this is not possible.
Thus, it is apparent from the foregoing that a need exists for the present invention: a method and system which will allow the selective "undoing" of edits done to particular sections of text or data within an electronic document.